package com.literaryfamily.literaryfamily.service.user.msg;

import com.literaryfamily.literaryfamily.entity.User;
import com.literaryfamily.literaryfamily.model.UnabridgedUsers;
import org.springframework.web.multipart.MultipartFile;

/**
 * 用户资料信息维护接口
 */
public interface UserProfileService {

	/**
	 * 更新用户信息
	 *
	 * @param before 原有信息
	 * @param after  更新后的信息(不包含手机号,此处不改变的必须设置为null)
	 * @return 更新后的信息
	 */
	UnabridgedUsers updateUserInfo(UnabridgedUsers before, UnabridgedUsers after);

	/**
	 * @param userId        修改的用户,后面的是用来效验的
	 * @param oldPe         旧手机号码
	 * @param newPe         新手机号码
	 * @param oldVerifyCode 旧手机验证码
	 * @param newVerifyCode 新手机验证码
	 * @return 更新后的用户信息
	 */
	User updateUserPe(Long userId, String oldPe, String newPe, String oldVerifyCode, String newVerifyCode);

	/**
	 * 更新头像
	 *
	 * @param userId 更新的用户id
	 * @param file   上传的头像,保存之后覆更新路径到数据库
	 * @return 更新后的头像路径
	 */
	String uploadAvatar(Long userId, MultipartFile file);

	/**
	 * 获取某个用户的头像
	 *
	 * @param userId 获取的用户
	 * @return 头像路径, 获取失败时返回null
	 */
	String getAvatarUrl(Long userId);

	/**
	 * 获取某个用户的完整信息
	 *
	 * @param userId 获取完整信息的用户
	 * @return 完整的用户信息
	 */
	UnabridgedUsers getUnabridgedUsersMxg(Long userId);
}